Joplin实现侧边栏目录

1 流程步骤

(1)打开Joplin

在这里插入图片描述

(2)然后点击“菜单栏”–>“工具”–>“选项”–>“外观”

在这里插入图片描述

(3)然后点击“显示高级选项”–>“适用于已渲染Markdown的自定义样式表”

在这里插入图片描述

(4)然后出现一个文本文件

在这里插入图片描述

(5)将以下代码copy进文件里,保存、重启Joplin

nav.table-of-contents ul {
    list-style-type: none;
    margin-top: 0px;
    margin-bottom: 0px;
}

nav.table-of-contents>ul {

    top: 5px;
    right: 0px;
    z-index: 99;
    
    font-size: 12px;
    position: fixed;
    padding: 15px;
    
    border-radius: 10px 0px 0px 10px;
    margin: 0px;
    
    overflow: hidden;
    height: 90%;
    width: 5px;
    transition: .2s;
}
nav.table-of-contents::after {
    content: "[目录 - 请将你的鼠标移至程序的右边]";
    color: black;
}

nav.table-of-contents>ul:hover {
    background: #F8F8F8;
    box-shadow: -5px 0px 10px 0px rgba(0,0,0,0.15);

    width: 30%;
    color: none;
    overflow: scroll;
}

nav.table-of-contents>ul:hover::before {
    content: "目录"
}

nav.table-of-contents>ul:hover li {
    display: list-item;
}

nav.table-of-contents li {
    display: none;
    white-space: nowrap;
    overflow: hidden;
    margin: 0px;
    padding: 0px;
}


    #rendered-md {
    width: 100%;
    }
}

(6)重启Joplin后,鼠标移动到最右测区域,会显示侧边栏目录

在这里插入图片描述

本文章转载自:https://lightzhan.xyz/index.php/2020/11/22/joplin-toc-customizing/

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
好的,以下是一个简单的安卓应用程序,其中包括一个菜单按钮和相关的菜单和子菜单,以及点击子菜单项会弹出提示信息的功能。 首先,在XML布局文件中添加一个按钮,如下所示: ``` <Button android:id="@+id/menu_button" android:text="菜单" android:layout_width="wrap_content" android:layout_height="wrap_content" /> ``` 接下来,在Java代码中为按钮添加一个点击事件监听器,当用户点击按钮时,会创建并显示菜单和子菜单,如下所示: ``` Button menuButton = findViewById(R.id.menu_button); menuButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { PopupMenu menu = new PopupMenu(MainActivity.this, v); menu.getMenuInflater().inflate(R.menu.main_menu, menu.getMenu()); menu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()) { case R.id.menu_male_singer: showSubMenu(R.menu.male_singer_menu); return true; case R.id.menu_female_singer: showSubMenu(R.menu.female_singer_menu); return true; case R.id.menu_group: showSubMenu(R.menu.group_menu); return true; } return false; } }); menu.show(); } }); ``` 在上面的代码中,我们使用`PopupMenu`类创建了一个菜单,并使用`getMenuInflater()`方法从菜单资源文件中加载菜单项。当用户选择其中一个选项时,会调用`showSubMenu()`方法显示对应的子菜单。 接下来,我们定义`showSubMenu()`方法来显示子菜单并添加点击事件监听器,如下所示: ``` private void showSubMenu(int menuResId) { PopupMenu subMenu = new PopupMenu(MainActivity.this, findViewById(R.id.menu_button)); subMenu.getMenuInflater().inflate(menuResId, subMenu.getMenu()); subMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()) { case R.id.submenu_tfboys: showMessage("你选择的组合是TFBOYS"); return true; case R.id.submenu_jolin: showMessage("你选择的女歌手是蔡依林"); return true; case R.id.submenu_jay: showMessage("你选择的男歌手是周杰伦"); return true; } return false; } }); subMenu.show(); } ``` 在上面的代码中,我们使用`PopupMenu`类创建了一个子菜单,并使用`getMenuInflater()`方法从子菜单资源文件中加载菜单项。当用户选择其中一个选项时,会调用`showMessage()`方法显示对应的提示信息。 最后,我们定义`showMessage()`方法来显示提示信息,如下所示: ``` private void showMessage(String message) { Toast.makeText(MainActivity.this, message, Toast.LENGTH_SHORT).show(); } ``` 在上面的代码中,我们使用`Toast`类创建一个短时间的提示信息,并将其显示在屏幕上。 完整的代码实现如下所示,可以将其添加到`MainActivity.java`文件中: ``` import android.os.Bundle; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.PopupMenu; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button menuButton = findViewById(R.id.menu_button); menuButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { PopupMenu menu = new PopupMenu(MainActivity.this, v); menu.getMenuInflater().inflate(R.menu.main_menu, menu.getMenu()); menu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()) { case R.id.menu_male_singer: showSubMenu(R.menu.male_singer_menu); return true; case R.id.menu_female_singer: showSubMenu(R.menu.female_singer_menu); return true; case R.id.menu_group: showSubMenu(R.menu.group_menu); return true; } return false; } }); menu.show(); } }); } private void showSubMenu(int menuResId) { PopupMenu subMenu = new PopupMenu(MainActivity.this, findViewById(R.id.menu_button)); subMenu.getMenuInflater().inflate(menuResId, subMenu.getMenu()); subMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()) { case R.id.submenu_tfboys: showMessage("你选择的组合是TFBOYS"); return true; case R.id.submenu_jolin: showMessage("你选择的女歌手是蔡依林"); return true; case R.id.submenu_jay: showMessage("你选择的男歌手是周杰伦"); return true; } return false; } }); subMenu.show(); } private void showMessage(String message) { Toast.makeText(MainActivity.this, message, Toast.LENGTH_SHORT).show(); } } ``` 希望这可以帮助你实现你想要的功能!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值