mirror of
https://github.com/kovidgoyal/kitty.git
synced 2024-08-17 02:20:25 +03:00
Use new URL scheme and define the kitty website centrally as much as possible
This commit is contained in:
parent
17f3d2d581
commit
1bd39ff935
@ -1 +1 @@
|
|||||||
See https://sw.kovidgoyal.net/kitty/changelog.html
|
See https://sw.kovidgoyal.net/kitty/changelog/
|
||||||
|
@ -10,9 +10,9 @@ config to reproduce the issue with).
|
|||||||
|
|
||||||
### Contributing code
|
### Contributing code
|
||||||
|
|
||||||
Install [the dependencies](https://sw.kovidgoyal.net/kitty/build.html#dependencies)
|
Install [the dependencies](https://sw.kovidgoyal.net/kitty/build/#dependencies)
|
||||||
using your favorite package manager. Build and run kitty [from
|
using your favorite package manager. Build and run kitty [from
|
||||||
source](https://sw.kovidgoyal.net/kitty/build.html#install-and-run-from-source).
|
source](https://sw.kovidgoyal.net/kitty/build/#install-and-run-from-source).
|
||||||
|
|
||||||
Make a fork, submit your Pull Request. If it's a large/controversial change, open an issue
|
Make a fork, submit your Pull Request. If it's a large/controversial change, open an issue
|
||||||
beforehand to discuss it, so that you don't waste your time making a pull
|
beforehand to discuss it, so that you don't waste your time making a pull
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
To build from source: <https://sw.kovidgoyal.net/kitty/build.html>
|
To build from source: <https://sw.kovidgoyal.net/kitty/build/>
|
||||||
|
|
||||||
Pre-built binaries: <https://sw.kovidgoyal.net/kitty/binary.html>
|
Pre-built binaries: <https://sw.kovidgoyal.net/kitty/binary/>
|
||||||
|
@ -4,7 +4,7 @@ See https://sw.kovidgoyal.net/kitty/[the kitty website].
|
|||||||
|
|
||||||
image:https://github.com/kovidgoyal/kitty/workflows/CI/badge.svg["Build status", link="https://github.com/kovidgoyal/kitty/actions?query=workflow%3ACI"]
|
image:https://github.com/kovidgoyal/kitty/workflows/CI/badge.svg["Build status", link="https://github.com/kovidgoyal/kitty/actions?query=workflow%3ACI"]
|
||||||
|
|
||||||
https://sw.kovidgoyal.net/kitty/faq.html[Frequently Asked Questions]
|
https://sw.kovidgoyal.net/kitty/faq/[Frequently Asked Questions]
|
||||||
|
|
||||||
To ask other questions about kitty usage, use either the https://github.com/kovidgoyal/kitty/discussions/[discussions on GitHub] or the
|
To ask other questions about kitty usage, use either the https://github.com/kovidgoyal/kitty/discussions/[discussions on GitHub] or the
|
||||||
https://www.reddit.com/r/KittyTerminal[Reddit community]
|
https://www.reddit.com/r/KittyTerminal[Reddit community]
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
sys.path.insert(0, kitty_src)
|
sys.path.insert(0, kitty_src)
|
||||||
|
|
||||||
from kitty.conf.types import Definition # noqa
|
from kitty.conf.types import Definition # noqa
|
||||||
from kitty.constants import str_version # noqa
|
from kitty.constants import str_version, website_url # noqa
|
||||||
|
|
||||||
# config {{{
|
# config {{{
|
||||||
# -- Project information -----------------------------------------------------
|
# -- Project information -----------------------------------------------------
|
||||||
@ -65,7 +65,7 @@
|
|||||||
]
|
]
|
||||||
|
|
||||||
# URL for OpenGraph tags
|
# URL for OpenGraph tags
|
||||||
ogp_site_url = 'https://sw.kovidgoyal.net/kitty/'
|
ogp_site_url = website_url()
|
||||||
|
|
||||||
# Add any paths that contain templates here, relative to this directory.
|
# Add any paths that contain templates here, relative to this directory.
|
||||||
templates_path = ['_templates']
|
templates_path = ['_templates']
|
||||||
|
@ -1 +1 @@
|
|||||||
See https://sw.kovidgoyal.net/kitty/kittens/diff.html
|
See https://sw.kovidgoyal.net/kitty/kittens/diff/
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
from kitty.cli import parse_args
|
from kitty.cli import parse_args
|
||||||
from kitty.cli_stub import HintsCLIOptions
|
from kitty.cli_stub import HintsCLIOptions
|
||||||
|
from kitty.constants import website_url
|
||||||
from kitty.fast_data_types import set_clipboard_string
|
from kitty.fast_data_types import set_clipboard_string
|
||||||
from kitty.key_encoding import KeyEvent
|
from kitty.key_encoding import KeyEvent
|
||||||
from kitty.typing import BossType, KittyCommonOpts
|
from kitty.typing import BossType, KittyCommonOpts
|
||||||
@ -640,7 +641,7 @@ def run(args: HintsCLIOptions, text: str, extra_cli_args: Sequence[str] = ()) ->
|
|||||||
--customize-processing
|
--customize-processing
|
||||||
Name of a python file in the kitty config directory which will be imported to provide
|
Name of a python file in the kitty config directory which will be imported to provide
|
||||||
custom implementations for pattern finding and performing actions
|
custom implementations for pattern finding and performing actions
|
||||||
on selected matches. See https://sw.kovidgoyal.net/kitty/kittens/hints.html
|
on selected matches. See {hints_url}
|
||||||
for details. You can also specify absolute paths to load the script from elsewhere.
|
for details. You can also specify absolute paths to load the script from elsewhere.
|
||||||
|
|
||||||
|
|
||||||
@ -649,7 +650,8 @@ def run(args: HintsCLIOptions, text: str, extra_cli_args: Sequence[str] = ()) ->
|
|||||||
the type of text being hinted.
|
the type of text being hinted.
|
||||||
'''.format(
|
'''.format(
|
||||||
default_regex=DEFAULT_REGEX,
|
default_regex=DEFAULT_REGEX,
|
||||||
line='{{line}}', path='{{path}}'
|
line='{{line}}', path='{{path}}',
|
||||||
|
hints_url=website_url('kittens/hints'),
|
||||||
).format
|
).format
|
||||||
help_text = 'Select text from the screen using the keyboard. Defaults to searching for URLs.'
|
help_text = 'Select text from the screen using the keyboard. Defaults to searching for URLs.'
|
||||||
usage = ''
|
usage = ''
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
from .config import common_opts_as_dict, prepare_config_file_for_editing
|
from .config import common_opts_as_dict, prepare_config_file_for_editing
|
||||||
from .constants import (
|
from .constants import (
|
||||||
appname, config_dir, is_macos, is_wayland, kitty_exe,
|
appname, config_dir, is_macos, is_wayland, kitty_exe,
|
||||||
supports_primary_selection
|
supports_primary_selection, website_url
|
||||||
)
|
)
|
||||||
from .fast_data_types import (
|
from .fast_data_types import (
|
||||||
CLOSE_BEING_CONFIRMED, IMPERATIVE_CLOSE_REQUESTED, NO_CLOSE_REQUESTED,
|
CLOSE_BEING_CONFIRMED, IMPERATIVE_CLOSE_REQUESTED, NO_CLOSE_REQUESTED,
|
||||||
@ -1141,7 +1141,7 @@ def done2(target_window_id: int, self: Boss) -> None:
|
|||||||
|
|
||||||
self._run_kitten('ask', [
|
self._run_kitten('ask', [
|
||||||
'--name=create-marker', '--message',
|
'--name=create-marker', '--message',
|
||||||
_('Create marker, for example:\ntext 1 ERROR\nSee https://sw.kovidgoyal.net/kitty/marks.html\n')
|
_('Create marker, for example:\ntext 1 ERROR\nSee {}\n').format(website_url('marks'))
|
||||||
],
|
],
|
||||||
custom_callback=done, action_on_removal=done2)
|
custom_callback=done, action_on_removal=done2)
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
from .cli_stub import CLIOptions
|
from .cli_stub import CLIOptions
|
||||||
from .conf.utils import resolve_config
|
from .conf.utils import resolve_config
|
||||||
from .constants import appname, defconf, is_macos, str_version
|
from .constants import appname, defconf, is_macos, str_version, website_url
|
||||||
from .options.types import Options as KittyOpts
|
from .options.types import Options as KittyOpts
|
||||||
from .typing import BadLineType, TypedDict
|
from .typing import BadLineType, TypedDict
|
||||||
|
|
||||||
@ -146,7 +146,7 @@ def file(x: str) -> str:
|
|||||||
|
|
||||||
@role
|
@role
|
||||||
def doc(x: str) -> str:
|
def doc(x: str) -> str:
|
||||||
return f'https://sw.kovidgoyal.net/kitty/{x}/'
|
return website_url(x)
|
||||||
|
|
||||||
|
|
||||||
OptionSpecSeq = List[Union[str, OptionDict]]
|
OptionSpecSeq = List[Union[str, OptionDict]]
|
||||||
@ -293,7 +293,8 @@ def get_defaults_from_seq(seq: OptionSpecSeq) -> Dict[str, Any]:
|
|||||||
to run inside :italic:`{appname}` as normal arguments following the :italic:`options`.
|
to run inside :italic:`{appname}` as normal arguments following the :italic:`options`.
|
||||||
For example: {appname} sh -c "echo hello, world. Press ENTER to quit; read"
|
For example: {appname} sh -c "echo hello, world. Press ENTER to quit; read"
|
||||||
|
|
||||||
For comprehensive documentation for kitty, please see: https://sw.kovidgoyal.net/kitty/''').format(appname=appname)
|
For comprehensive documentation for kitty, please see: {url}''').format(
|
||||||
|
appname=appname, url=website_url())
|
||||||
|
|
||||||
|
|
||||||
class PrintHelpForSeq:
|
class PrintHelpForSeq:
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
)
|
)
|
||||||
|
|
||||||
import kitty.conf.utils as generic_parsers
|
import kitty.conf.utils as generic_parsers
|
||||||
|
from kitty.constants import website_url
|
||||||
|
|
||||||
if typing.TYPE_CHECKING:
|
if typing.TYPE_CHECKING:
|
||||||
Only = typing.Literal['macos', 'linux', '']
|
Only = typing.Literal['macos', 'linux', '']
|
||||||
@ -41,15 +42,15 @@ def expand(m: Match) -> str:
|
|||||||
|
|
||||||
|
|
||||||
def remove_markup(text: str) -> str:
|
def remove_markup(text: str) -> str:
|
||||||
base = 'https://sw.kovidgoyal.net/kitty'
|
ref_map = {
|
||||||
|
'layouts': f'{website_url("overview")}#layouts',
|
||||||
|
'sessions': f'{website_url("overview")}#layouts',
|
||||||
|
'functional': f'{website_url("keyboard-protocol")}#functional-key-definitions',
|
||||||
|
}
|
||||||
|
|
||||||
def sub(m: Match) -> str:
|
def sub(m: Match) -> str:
|
||||||
if m.group(1) == 'ref':
|
if m.group(1) == 'ref':
|
||||||
return {
|
return ref_map[m.group(2)]
|
||||||
'layouts': f'{base}/overview/#layouts',
|
|
||||||
'sessions': f'{base}/overview/#sessions',
|
|
||||||
'functional': f'{base}/keyboard-protocol/#functional-key-definitions',
|
|
||||||
}[m.group(2)]
|
|
||||||
return str(m.group(2))
|
return str(m.group(2))
|
||||||
|
|
||||||
return re.sub(r':([a-zA-Z0-9]+):`(.+?)`', sub, text, flags=re.DOTALL)
|
return re.sub(r':([a-zA-Z0-9]+):`(.+?)`', sub, text, flags=re.DOTALL)
|
||||||
|
@ -186,3 +186,11 @@ def read_kitty_resource(name: str) -> bytes:
|
|||||||
except ImportError:
|
except ImportError:
|
||||||
from importlib_resources import read_binary # type: ignore
|
from importlib_resources import read_binary # type: ignore
|
||||||
return read_binary('kitty', name)
|
return read_binary('kitty', name)
|
||||||
|
|
||||||
|
|
||||||
|
def website_url(doc_name: str = '') -> str:
|
||||||
|
if doc_name:
|
||||||
|
doc_name = doc_name.rstrip('/')
|
||||||
|
if doc_name:
|
||||||
|
doc_name += '/'
|
||||||
|
return f'https://sw.kovidgoyal.net/kitty/{doc_name}'
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
from typing import TYPE_CHECKING, Optional
|
from typing import TYPE_CHECKING, Optional
|
||||||
|
|
||||||
|
from kitty.constants import website_url
|
||||||
from kitty.options.utils import parse_marker_spec
|
from kitty.options.utils import parse_marker_spec
|
||||||
|
|
||||||
from .base import (
|
from .base import (
|
||||||
@ -26,8 +27,8 @@ class CreateMarker(RemoteCommand):
|
|||||||
short_desc = 'Create a marker that highlights specified text'
|
short_desc = 'Create a marker that highlights specified text'
|
||||||
desc = (
|
desc = (
|
||||||
'Create a marker which can highlight text in the specified window. For example: '
|
'Create a marker which can highlight text in the specified window. For example: '
|
||||||
'create_marker text 1 ERROR. For full details see: https://sw.kovidgoyal.net/kitty/marks.html'
|
'create_marker text 1 ERROR. For full details see: {}'
|
||||||
)
|
).format(website_url('marks'))
|
||||||
options_spec = MATCH_WINDOW_OPTION + '''\n
|
options_spec = MATCH_WINDOW_OPTION + '''\n
|
||||||
--self
|
--self
|
||||||
type=bool-set
|
type=bool-set
|
||||||
|
@ -10,13 +10,13 @@
|
|||||||
from urllib.request import urlopen
|
from urllib.request import urlopen
|
||||||
|
|
||||||
from .config import atomic_save
|
from .config import atomic_save
|
||||||
from .constants import Version, cache_dir, kitty_exe, version
|
from .constants import Version, cache_dir, kitty_exe, version, website_url
|
||||||
from .fast_data_types import add_timer, get_boss, monitor_pid
|
from .fast_data_types import add_timer, get_boss, monitor_pid
|
||||||
from .notify import notify
|
from .notify import notify
|
||||||
from .utils import log_error, open_url
|
from .utils import log_error, open_url
|
||||||
|
|
||||||
CHANGELOG_URL = 'https://sw.kovidgoyal.net/kitty/changelog.html'
|
CHANGELOG_URL = website_url('changelog')
|
||||||
RELEASED_VERSION_URL = 'https://sw.kovidgoyal.net/kitty/current-version.txt'
|
RELEASED_VERSION_URL = website_url() + 'current-version.txt'
|
||||||
CHECK_INTERVAL = 24 * 60 * 60.
|
CHECK_INTERVAL = 24 * 60 * 60.
|
||||||
|
|
||||||
|
|
||||||
@ -104,8 +104,8 @@ def process_current_release(raw: str) -> None:
|
|||||||
|
|
||||||
|
|
||||||
def run_worker() -> None:
|
def run_worker() -> None:
|
||||||
import time
|
|
||||||
import random
|
import random
|
||||||
|
import time
|
||||||
time.sleep(random.randint(1000, 4000) / 1000)
|
time.sleep(random.randint(1000, 4000) / 1000)
|
||||||
with suppress(BrokenPipeError): # happens if parent process is killed before us
|
with suppress(BrokenPipeError): # happens if parent process is killed before us
|
||||||
print(get_released_version())
|
print(get_released_version())
|
||||||
|
@ -328,7 +328,7 @@ def create_release(self, releases: Iterable[Dict[str, str]]) -> Dict[str, Any]:
|
|||||||
'target_commitish': 'master',
|
'target_commitish': 'master',
|
||||||
'name': 'version %s' % self.version,
|
'name': 'version %s' % self.version,
|
||||||
'body': f'Release version {self.version}.'
|
'body': f'Release version {self.version}.'
|
||||||
' For changelog, see https://sw.kovidgoyal.net/kitty/changelog.html'
|
' For changelog, see https://sw.kovidgoyal.net/kitty/changelog/'
|
||||||
' GPG key used for signing tarballs is: https://calibre-ebook.com/signatures/kovid.gpg',
|
' GPG key used for signing tarballs is: https://calibre-ebook.com/signatures/kovid.gpg',
|
||||||
'draft': False,
|
'draft': False,
|
||||||
'prerelease': False
|
'prerelease': False
|
||||||
|
Loading…
Reference in New Issue
Block a user